This specification relates generally to text input, and more specifically, to facilitating text input for a user not conversant with the input language.
For some Latin languages, such as English, words are composed of alphabetic letters that are, when typing on a computer, keyed in one letter each time. There may be some errors in the text string input by a user, such as misspellings of a word, or grammatical mistakes, such as wrong tense, or other error. For a user inputting English text and whose native language is not English, for example, it may be necessary for the user to find additional resources, such as an online dictionary or a translation service, to determine a definition of a word or meaning of a sentence in the user's native language to ensure that the proper words or phrases are used when typing in English. In some cases, the service used may provide some text input assistance features, such as a spell checker, a thesaurus for finding synonyms or antonyms, prediction of the most likely form (e.g., spelling), etc., for a particular string. FIG. 1A is an example of a text editor that provides alternate and corrections for a text string “honor.” The text editor is triggered by moving the cursor inside the string and a right click on the mouse. In this example, the user can select the word the user originally intended to type in the input field. FIG. 1B is an example of finding the meaning of a word “multilingual” in Google Dictionary, an online dictionary service provided by Google Inc.
In the above two examples, however, the input assistance features are either limited to a specific application, such as the text editor in FIG. 1A, or are a provided by separate service that the user has to invoke by following the interface provided by the service, such as in a separate application. Furthermore, the service(s) provided in each case may not be sufficient for a user to resort to when providing text input in a particular application.
On the other hand, for some non-Latin languages, such as the East Asian languages of Chinese, Korean or Japanese, it is not possible for a user to use a common keyboard to type in any characters in such languages directly since no characters or symbols of these languages are found on the keyboard. Various input methods are used to facilitate the input of text in these languages. This is achieved by implementing a so-called Input Method Editor (IME) in the operating system and invoking it in each application that may require text input from a user in an application. More than one IME can be installed on one computer for inputting text in different languages or the same language, and each can be used by a user according to his preference. An IME Framework (IMF) is the managing platform in the operating system that manages the different IME. The IMF exists in various modern operating systems, such as Microsoft Windows (IMM32 and Text Service Framework), Linux (scim and bus), Mac OSX and Android (IMF). Switching between the different IMEs in the operating system is managed by the IMF. However, aside from the function of providing indirect input of characters, most input methods provided for such Asian languages do not have many additional functions in assisting the user in his text input experience.
For a user who may often require input assistance when typing or writing in a non-native language, such as a user whose native language is Chinese and is typing in English in an input field of a particular application, it will be helpful if the user can resort to just one service for advanced runtime input assistance features without invoking multiple other services, regardless of what type of application is being used or interacted with.